package com.itheima.day08;

/*
    == 做比较:
        比较基本数据类型,比具体值
        比较引用数据类型,比地址值
 */
public class String的比较 {
    public static void main(String[] args) {
        //1. 都是双引号直接赋值
        String s1 = "abc";
        String s2 = "abc";
        System.out.println(s1 == s2);       // true

        //2. 拿new出来的和双引号直接赋值比较
        String s3 = new String("abc");
        System.out.println(s1 == s3);      // false

        //3. 字符串+操作 【有变量参与就可以看成new,每+一次就等于new一次,每次new产生的地址都不一样】
        String s4 = "ab";
        String s5 =  s4 + "c";
        String s55 = s4 + "c";
        System.out.println(s1 == s5);   //false
        System.out.println(s55 == s5);  //false

        //4. 字符串+操作【常量优化机制: 多个字符串常量进行相加,会在编译期完成拼接,等同于双引号直接赋值,指向常量池】
        String s6 = "ab" + "c";     // String s6 = "abc";
        String s7 = "a" + "bc";     // String s7 = "abc";
        String s8 = "abc";
        System.out.println(s6 == s7 && s7 == s8);  // true
    }
}
